In the process of recording and reading a large amount of data, fixed-size buffering is generally used. According to fixed-size buffering, a whole buffer is divided into certain-sized buffers, and buffering is performed on the basis of the divided buffers. Fixed-size buffering facilitates buffering control and thus is easy to implement. However, when the divided buffers have different amounts of data, it is unlikely that data corresponding to a maximum storable buffer size will be stored in each buffer, and storage efficiency of the buffers may be degraded.
To solve this problem, variable-size buffering may be used. According to variable-size buffering, data is sequentially stored in a buffer by actual amounts of data. Therefore, there is less buffer waste, but control is complicated. In particular, when different processors are in different states, control is constantly performed for a point in time at which recording will be performed or a point in time at which reading will be performed, so that a heavier load may be generated.